Public Class Advertisement
	Inherits Message

	'Component: Header
	Private m_Header As Header

	<FieldInfo(GetType(Header), 0)> _
	Public Property Header() As Header
		Get
			Return m_Header
		End Get
		Set(ByVal value As Header)
			m_Header = value
		End Set
	End Property



	Private m_AdvId As String

	<FieldInfo(GetType(AdvIdFieldInfo), 1)> _
	Public Property AdvId() As String
		Get
			Return m_AdvId
		End Get
		Set(ByVal value As String)
			m_AdvId = value
		End Set
	End Property

	Private m_AdvTransType As String

	<FieldInfo(GetType(AdvTransTypeFieldInfo), 2)> _
	Public Property AdvTransType() As String
		Get
			Return m_AdvTransType
		End Get
		Set(ByVal value As String)
			m_AdvTransType = value
		End Set
	End Property

	Private m_AdvRefID As String

	<FieldInfo(GetType(AdvRefIDFieldInfo), 3)> _
	Public Property AdvRefID() As String
		Get
			Return m_AdvRefID
		End Get
		Set(ByVal value As String)
			m_AdvRefID = value
		End Set
	End Property

	'Component: Instrument
	Private m_Instrument As Instrument

	<FieldInfo(GetType(Instrument), 4)> _
	Public Property Instrument() As Instrument
		Get
			Return m_Instrument
		End Get
		Set(ByVal value As Instrument)
			m_Instrument = value
		End Set
	End Property

	'Group: NoLegs
	Private m_NoLegs As New List(Of NoLegsGroup)

	<FieldInfo(GetType(NoLegsGroup), 5)> _
	Public ReadOnly Property NoLegs() As List(Of NoLegsGroup)
		Get
			Return m_NoLegs
		End Get
	End Property

	Public Class NoLegsGroup
		Inherits Group

		'Component: InstrumentLeg
		Private m_InstrumentLeg As InstrumentLeg

		<FieldInfo(GetType(InstrumentLeg), 0)> _
		Public Property InstrumentLeg() As InstrumentLeg
			Get
				Return m_InstrumentLeg
			End Get
			Set(ByVal value As InstrumentLeg)
				m_InstrumentLeg = value
			End Set
		End Property


	End Class



	'Group: NoUnderlyings
	Private m_NoUnderlyings As New List(Of NoUnderlyingsGroup)

	<FieldInfo(GetType(NoUnderlyingsGroup), 6)> _
	Public ReadOnly Property NoUnderlyings() As List(Of NoUnderlyingsGroup)
		Get
			Return m_NoUnderlyings
		End Get
	End Property

	Public Class NoUnderlyingsGroup
		Inherits Group

		'Component: UnderlyingInstrument
		Private m_UnderlyingInstrument As UnderlyingInstrument

		<FieldInfo(GetType(UnderlyingInstrument), 0)> _
		Public Property UnderlyingInstrument() As UnderlyingInstrument
			Get
				Return m_UnderlyingInstrument
			End Get
			Set(ByVal value As UnderlyingInstrument)
				m_UnderlyingInstrument = value
			End Set
		End Property


	End Class



	Private m_AdvSide As Char

	<FieldInfo(GetType(AdvSideFieldInfo), 7)> _
	Public Property AdvSide() As Char
		Get
			Return m_AdvSide
		End Get
		Set(ByVal value As Char)
			m_AdvSide = value
		End Set
	End Property

	Private m_Quantity As Decimal

	<FieldInfo(GetType(QuantityFieldInfo), 8)> _
	Public Property Quantity() As Decimal
		Get
			Return m_Quantity
		End Get
		Set(ByVal value As Decimal)
			m_Quantity = value
		End Set
	End Property

	Private m_QtyType As QtyType

	<FieldInfo(GetType(QtyTypeFieldInfo), 9)> _
	Public Property QtyType() As QtyType
		Get
			Return m_QtyType
		End Get
		Set(ByVal value As QtyType)
			m_QtyType = value
		End Set
	End Property

	Private m_Price As Decimal

	<FieldInfo(GetType(PriceFieldInfo), 10)> _
	Public Property Price() As Decimal
		Get
			Return m_Price
		End Get
		Set(ByVal value As Decimal)
			m_Price = value
		End Set
	End Property

	Private m_Currency As String

	<FieldInfo(GetType(CurrencyFieldInfo), 11)> _
	Public Property Currency() As String
		Get
			Return m_Currency
		End Get
		Set(ByVal value As String)
			m_Currency = value
		End Set
	End Property

	Private m_TradeDate As DateTime

	<FieldInfo(GetType(TradeDateFieldInfo), 12)> _
	Public Property TradeDate() As DateTime
		Get
			Return m_TradeDate
		End Get
		Set(ByVal value As DateTime)
			m_TradeDate = value
		End Set
	End Property

	Private m_TransactTime As DateTimeOffset

	<FieldInfo(GetType(TransactTimeFieldInfo), 13)> _
	Public Property TransactTime() As DateTimeOffset
		Get
			Return m_TransactTime
		End Get
		Set(ByVal value As DateTimeOffset)
			m_TransactTime = value
		End Set
	End Property

	Private m_Text As String

	<FieldInfo(GetType(TextFieldInfo), 14)> _
	Public Property Text() As String
		Get
			Return m_Text
		End Get
		Set(ByVal value As String)
			m_Text = value
		End Set
	End Property

	Private m_EncodedTextLen As Int32

	<FieldInfo(GetType(EncodedTextLenFieldInfo), 15)> _
	Public Property EncodedTextLen() As Int32
		Get
			Return m_EncodedTextLen
		End Get
		Set(ByVal value As Int32)
			m_EncodedTextLen = value
		End Set
	End Property

	Private m_EncodedText As Byte()

	<FieldInfo(GetType(EncodedTextFieldInfo), 16)> _
	Public Property EncodedText() As Byte()
		Get
			Return m_EncodedText
		End Get
		Set(ByVal value As Byte())
			m_EncodedText = value
		End Set
	End Property

	Private m_URLLink As String

	<FieldInfo(GetType(URLLinkFieldInfo), 17)> _
	Public Property URLLink() As String
		Get
			Return m_URLLink
		End Get
		Set(ByVal value As String)
			m_URLLink = value
		End Set
	End Property

	Private m_LastMkt As String

	<FieldInfo(GetType(LastMktFieldInfo), 18)> _
	Public Property LastMkt() As String
		Get
			Return m_LastMkt
		End Get
		Set(ByVal value As String)
			m_LastMkt = value
		End Set
	End Property

	Private m_TradingSessionID As String

	<FieldInfo(GetType(TradingSessionIDFieldInfo), 19)> _
	Public Property TradingSessionID() As String
		Get
			Return m_TradingSessionID
		End Get
		Set(ByVal value As String)
			m_TradingSessionID = value
		End Set
	End Property

	Private m_TradingSessionSubID As String

	<FieldInfo(GetType(TradingSessionSubIDFieldInfo), 20)> _
	Public Property TradingSessionSubID() As String
		Get
			Return m_TradingSessionSubID
		End Get
		Set(ByVal value As String)
			m_TradingSessionSubID = value
		End Set
	End Property


	'Component: Trailer
	Private m_Trailer As Trailer

	<FieldInfo(GetType(Trailer), 21)> _
	Public Property Trailer() As Trailer
		Get
			Return m_Trailer
		End Get
		Set(ByVal value As Trailer)
			m_Trailer = value
		End Set
	End Property


End Class

